package com.rybbaby.tss.front.tssClassesLessons.service;


import com.rybbaby.tss.core.web.service.IBaseService;
import com.rybbaby.tss.front.tssClassesLessons.entity.TssClassesLessons;
import org.springframework.web.bind.annotation.RequestParam;

import java.sql.Timestamp;
import java.util.List;

import java.util.Map;


/**
 * @author 雷春琼
 * @description 班级课节对调表数据库操作服务接口
 * @createDate 2017-08-09 下午11:50:14
 */
public interface ITssClassesLessonsService extends IBaseService<TssClassesLessons> {


    /**
     * 根据班级Id和亲子学生id查询剩余课时数
     *
     * @return
     */
    public Integer getSurplusCurriculum(String classId, String memberId);

    /**
     * 根据班级id批量查询课节
     *
     * @param classId
     * @return
     */
    List<Map<String, Object>> getListByClassId(String classId);

    /**
     * 根据课节时间查询课节信息
     *
     * @param classTime
     * @param classType
     * @return
     */
    Map<String, Object> classLessonsExchangeByClassTime(String classTime, Integer classType);


    /**
     * 修改班级对调信息
     *
     * @param lessonsOne
     * @param classTimeOne
     * @param lessonsTwo
     * @param classTimeTwo
     * @return
     */
    Boolean updateLessonClassTime(String lessonsOne, String classTimeOne, String lessonsTwo, String classTimeTwo,String adminUserId) throws Exception;


    /**
     * 根据班级id 上课时间查找课节
     * @param classId
     * @param classTime
     * @return
     */
    Map<String, Object> findByClassIdCreateTime(String classId, Timestamp classTime);

    /**
     * 根据id查看还有多少课节可以变动
     * @param id
     * @return
     */
    Integer countCouldChangeLessons(String id);

    /**
     * 根据id批量修改参数
     *
     * @param map
     * @param id
     * @return
     */
    Integer updateParameterById(Map<String, Object> map, String id);

    /**
     * 退课操作
     * @param ids 课节id
     * @return
     */
    Boolean stopClassByLessonIds(String ids);

    /**
     * 根据班级id批量查询课节
     *
     * @param classId
     * @return
     */
    List<Map<String, Object>> queryListByClassId(String classId);

    /**
     * 根据老师和上课时间查询课节信息
     * @param empAdminUserId
     * @param classTime
     * @return
     */
    List<Map<String, Object>> queryByClassTimeAndAdminUserId(String empAdminUserId,String classTime,Integer type);
}
